| @@ -226,6 +226,7 @@ urlpatterns += [ | ||
| 226 | 226 | url(r'^clerk/sale/submit$', sale_views.clerk_sale_submit_api, name='clerk_sale_submit'), # 店员销售信息提交 | 
| 227 | 227 | url(r'^clerk/integral/list$', sale_views.clerk_integral_list_api, name='clerk_integral_list_api'), # 店员销售积分列表 | 
| 228 | 228 | url(r'^clerk/model/list$', sale_views.clerk_model_list_api, name='clerk_model_list_api'), | 
| 229 | + url(r'^clerk/checkout/serialNo$', sale_views.clerk_checkout_serialNo_api, name='clerk_checkout_serialNo_api'), #校验序列号 | |
| 229 | 230 | ] | 
| 230 | 231 |  | 
| 231 | 232 | urlpatterns += [ | 
| @@ -16,6 +16,7 @@ from statistic.models import (DistributorSaleStatisticInfo, ModelSaleStatisticIn | ||
| 16 | 16 | SaleclerkSaleStatisticInfo, SaleStatisticInfo) | 
| 17 | 17 | from utils.error.errno_utils import (ProductBrandStatusCode, ProductDistributorStatusCode, ProductModelStatusCode, | 
| 18 | 18 | SaleclerkStatusCode) | 
| 19 | +from logs.models import MchInfoEncryptLogInfo | |
| 19 | 20 |  | 
| 20 | 21 |  | 
| 21 | 22 | @logit | 
| @@ -392,3 +393,43 @@ def clerk_model_list_api(request): | ||
| 392 | 393 |      return response(200, data={ | 
| 393 | 394 | 'models': models, | 
| 394 | 395 | }) | 
| 396 | + | |
| 397 | +@logit | |
| 398 | +def clerk_checkout_serialNo_api(request): | |
| 399 | +    brandID = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_PK) | |
| 400 | +    user_id = request.POST.get('user_id', '') | |
| 401 | +    serialNo = request.POST.get('serial', '') | |
| 402 | +    model_pk = request.POST.get('model_pk', '') | |
| 403 | + | |
| 404 | + try: | |
| 405 | + user = UserInfo.objects.get(user_id=user_id, status=True) | |
| 406 | + except UserInfo.DoesNotExist: | |
| 407 | + return response(SaleclerkStatusCode.CLERK_NOT_FOUND) | |
| 408 | + | |
| 409 | + try: | |
| 410 | + brand = BrandInfo.objects.get(pk=brandID) | |
| 411 | + except BrandInfo.DoesNotExist: | |
| 412 | + brand = None | |
| 413 | + except ValueError: | |
| 414 | + brand = None | |
| 415 | + | |
| 416 | + if not brand: | |
| 417 | + try: | |
| 418 | + brand = BrandInfo.objects.get(brand_id=brandID) | |
| 419 | + except BrandInfo.DoesNotExist: | |
| 420 | + return response(ProductBrandStatusCode.BRAND_NOT_FOUND) | |
| 421 | + | |
| 422 | + try: | |
| 423 | + clerk = SaleclerkInfo.objects.get(brand_id=brand.brand_id, unionid=user.unionid, status=True) | |
| 424 | + except SaleclerkInfo.DoesNotExist: | |
| 425 | + return response(SaleclerkStatusCode.CLERK_NOT_FOUND) | |
| 426 | + | |
| 427 | + try: | |
| 428 | + logs = MchInfoEncryptLogInfo.objects.get(model_pk=model_pk, sn=serialNo) | |
| 429 | + except MchInfoEncryptLogInfo.DoesNotExist: | |
| 430 | + return response(SaleclerkStatusCode.SERIALNO_NOT_FOUND) | |
| 431 | + | |
| 432 | + if not logs: | |
| 433 | + return response(SaleclerkStatusCode.SERIALNO_NOT_FOUND) | |
| 434 | + | |
| 435 | + return response(200, 'SerialNo Checkout Success', u'序列号校验成功') | 
| @@ -15,6 +15,9 @@ class SaleclerkStatusCode(BaseStatusCode): | ||
| 15 | 15 | # 上传 | 
| 16 | 16 | DUPLICATE_SUBMIT = StatusCodeField(500199, 'Duplicate Submit', description=u'重复提交') | 
| 17 | 17 |  | 
| 18 | + #序列号校验 | |
| 19 | + SERIALNO_NOT_FOUND = StatusCodeField(500200, 'SerialNo Not Found', description=u'序列号不存在') | |
| 20 | + | |
| 18 | 21 |  | 
| 19 | 22 | class SalesResponsibilityStatusCode(BaseStatusCode): | 
| 20 | 23 | """ 销售担当相关错误码 5002xx """ |